home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 June / PersonalComputerWorld-June2009-CoverdiscCD.iso / Software / Freeware / Adobe AIR 1.5.1 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / resources / ResourceBundle.as < prev    next >
Encoding:
Text File  |  2009-02-12  |  4.4 KB  |  159 lines

  1. package mx.resources
  2. {
  3.    import flash.system.ApplicationDomain;
  4.    import mx.core.mx_internal;
  5.    import mx.utils.StringUtil;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class ResourceBundle implements IResourceBundle
  10.    {
  11.       mx_internal static var backupApplicationDomain:ApplicationDomain;
  12.       
  13.       mx_internal static var locale:String;
  14.       
  15.       mx_internal static const VERSION:String = "3.0.0.0";
  16.       
  17.       mx_internal var _locale:String;
  18.       
  19.       private var _content:Object;
  20.       
  21.       mx_internal var _bundleName:String;
  22.       
  23.       public function ResourceBundle(param1:String = null, param2:String = null)
  24.       {
  25.          _content = {};
  26.          super();
  27.          mx_internal::_locale = param1;
  28.          mx_internal::_bundleName = param2;
  29.          _content = getContent();
  30.       }
  31.       
  32.       private static function getClassByName(param1:String, param2:ApplicationDomain) : Class
  33.       {
  34.          var _loc3_:Class = null;
  35.          if(param2.hasDefinition(param1))
  36.          {
  37.             _loc3_ = param2.getDefinition(param1) as Class;
  38.          }
  39.          return _loc3_;
  40.       }
  41.       
  42.       public static function getResourceBundle(param1:String, param2:ApplicationDomain = null) : ResourceBundle
  43.       {
  44.          var _loc3_:* = null;
  45.          var _loc4_:Class = null;
  46.          var _loc5_:Object = null;
  47.          var _loc6_:ResourceBundle = null;
  48.          if(!param2)
  49.          {
  50.             param2 = ApplicationDomain.currentDomain;
  51.          }
  52.          _loc3_ = mx_internal::locale + "$" + param1 + "_properties";
  53.          _loc4_ = getClassByName(_loc3_,param2);
  54.          if(!_loc4_)
  55.          {
  56.             _loc3_ = param1 + "_properties";
  57.             _loc4_ = getClassByName(_loc3_,param2);
  58.          }
  59.          if(!_loc4_)
  60.          {
  61.             _loc3_ = param1;
  62.             _loc4_ = getClassByName(_loc3_,param2);
  63.          }
  64.          if(!_loc4_ && Boolean(mx_internal::backupApplicationDomain))
  65.          {
  66.             _loc3_ = param1 + "_properties";
  67.             _loc4_ = getClassByName(_loc3_,mx_internal::backupApplicationDomain);
  68.             if(!_loc4_)
  69.             {
  70.                _loc3_ = param1;
  71.                _loc4_ = getClassByName(_loc3_,mx_internal::backupApplicationDomain);
  72.             }
  73.          }
  74.          if(_loc4_)
  75.          {
  76.             _loc5_ = new _loc4_();
  77.             if(_loc5_ is ResourceBundle)
  78.             {
  79.                return ResourceBundle(_loc5_);
  80.             }
  81.          }
  82.          throw new Error("Could not find resource bundle " + param1);
  83.       }
  84.       
  85.       protected function getContent() : Object
  86.       {
  87.          return {};
  88.       }
  89.       
  90.       public function getString(param1:String) : String
  91.       {
  92.          return String(_getObject(param1));
  93.       }
  94.       
  95.       public function get content() : Object
  96.       {
  97.          return _content;
  98.       }
  99.       
  100.       public function getBoolean(param1:String, param2:Boolean = true) : Boolean
  101.       {
  102.          var _loc3_:String = _getObject(param1).toLowerCase();
  103.          if(_loc3_ == "false")
  104.          {
  105.             return false;
  106.          }
  107.          if(_loc3_ == "true")
  108.          {
  109.             return true;
  110.          }
  111.          return param2;
  112.       }
  113.       
  114.       public function getStringArray(param1:String) : Array
  115.       {
  116.          var _loc2_:Array = _getObject(param1).split(",");
  117.          var _loc3_:int = int(_loc2_.length);
  118.          var _loc4_:int = 0;
  119.          while(_loc4_ < _loc3_)
  120.          {
  121.             _loc2_[_loc4_] = StringUtil.trim(_loc2_[_loc4_]);
  122.             _loc4_++;
  123.          }
  124.          return _loc2_;
  125.       }
  126.       
  127.       public function getObject(param1:String) : Object
  128.       {
  129.          return _getObject(param1);
  130.       }
  131.       
  132.       private function _getObject(param1:String) : Object
  133.       {
  134.          var _loc2_:Object = content[param1];
  135.          if(!_loc2_)
  136.          {
  137.             throw new Error("Key " + param1 + " was not found in resource bundle " + bundleName);
  138.          }
  139.          return _loc2_;
  140.       }
  141.       
  142.       public function get locale() : String
  143.       {
  144.          return mx_internal::_locale;
  145.       }
  146.       
  147.       public function get bundleName() : String
  148.       {
  149.          return mx_internal::_bundleName;
  150.       }
  151.       
  152.       public function getNumber(param1:String) : Number
  153.       {
  154.          return Number(_getObject(param1));
  155.       }
  156.    }
  157. }
  158.  
  159.